#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>

#define N 105
#define M 105
using namespace std;

int n,m,mm;
char t[N][N];
char p[M][M];

void gen_seq(char* v, int cnt, int alpha){
    int i;
    for(i = 0;i < cnt; i++){
        v[i] = rand()%alpha + 'a';
    }
}

int main(){
    int i,j,k,kk;

    // Input
    scanf("%d %d %d",&m, &n, &mm);
    kk = 1;
    gen_seq(p[0], m, mm);
    for(i = 1; i < m;i++) {
        k = rand()%4;
        if (k <= 1 && kk < i){
            strcpy(p[i], p[kk]);
            kk++;
        } else if (i > 1 && k < 3) {
            j = rand()%i;
            strcpy(p[i], p[j]);
            if (j == 0)
                kk = 1;
            else if (j == kk)
                kk++;
            else
                kk = 0;
        } else {
            gen_seq(p[i], m, mm);
        }
    }

    for(i = 0; i < n;i++)
        gen_seq(t[i], n, mm);
    
    k = n*n/10;
    if (k < 5)
        k = 5;
    while(k--){
        i = rand()%(n-m+1);
        j = rand()%(n-m+1);
        for(int ii = 0; ii <m;ii++){
            for(int jj = 0; jj < m;jj++){
                t[i+ii][j+jj]=p[ii][jj];
            }
        }
    }

    printf("%d %d\n", m, n);
    for(i = 0; i< m;i++){
        for(j = 0; j < m;j++)
            printf("%c",p[i][j]);
        printf("\n");
    }
    for(i = 0; i< n;i++){
        for(j = 0; j < n;j++)
            printf("%c",t[i][j]);
        printf("\n");
    }


    return 0;
}
